package com.bjpowernode.ba04;

import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;

@Aspect
public class MyAspect {
/*
*   异常通知的定义:
* 1.访问权限修饰符是public
* 2.返回值是void
* 3.方法名称自定义
* 4.方法参数是Exception，
*
*@AfterThrowing:异常通知
*   属性：1.value 切入点表达式
*         2.throwing 自定义变量。变量名和方法的参数名一样
*
*特点：
*   1.在目标方法抛出异常时候执行
*   2.可以做异常的监控程序，如果有异常可以发送邮件、短信等
* */
    @AfterThrowing(value = "execution(* com.bjpowernode.ba04.SomeService4Impl.doSecond(..))"
            ,throwing = "ex")
    public void myAfterThrowing(Exception ex){
        System.out.println("异常通知，在方法发生异常时执行"+ex.getMessage());
    }
}
